package cn.lyjuan.archetypes.bms.web.mapper;


import cn.lyjuan.archetypes.bms.common.entity.MgAction;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created by ly on 2014/11/21.
 */
public interface IWebActionMapper
{
	/**
	 * 查询所有请求地址
	 * @return
	 */
	List<String> selectAll();

	/**
	 * 查询所有请求地址
	 * @return
	 */
	List<String> selectAllByManagerId(@Param("manageid")Integer managerid);

	/**
	 * 检索请求数量，用于分页
	 * @param param
	 * @return
	 */
	int selectActionCount(@Param("param") Map<String, String> param);


	/**
	 * 分页检索查询请求信息
	 * @param param
	 * @return
	 */
	List<MgAction> selectActions(@Param("param") Map<String, String> param);

    /**
     * 查询分配给该用户的请求
     * @param manageid
     * @param param
     * @return
     */
	List<MgAction> selectActionsForManage(@Param("manageid") Integer manageid, @Param("param") Map<String, String> param);

    int selectActionCountForManage(@Param("manageid") Integer manageid, @Param("param") Map<String, String> param);

    /**
     * 查询角色拥有的请求
     * @param roleid
     * @return
     */
    List<MgAction> selectActionsForRole(@Param("roleid") Integer roleid);

    /**
     * 查询所有非来宾账户关联的请求
     * @param guestName
     * @return
     */
    List<MgAction> selectForNotGuest(@Param("guestName") String guestName);

    /**
     * 查询所有来宾账户关联的请求
     * @param guestName
     * @return
     */
    List<MgAction> selectForGuest(@Param("guestName") String guestName);

	/**
	 * 根据请求地址查询请求信息
	 * @param actionurl
	 * @return
	 */
	MgAction selectByUrl(@Param("actionurl") String actionurl);

	/**
	 * 更新状态
	 * @param id
	 * @return
	 */
	int updateStatusById(@Param("id") int id, @Param("status") int status);
}